home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_03 / allison / preproc.c < prev    next >
Text File  |  1994-01-05  |  707b  |  36 lines

  1.  
  2. LISTING 8 - Illustrates macro rescanning
  3. /* preproc.c:  Test # and ## preprocessing operators
  4.  *
  5.  *  NOTE:   DO NOT COMPILE! Preprocess only!
  6.  */
  7.  
  8. /* Handy stringizing macros */
  9. #define str(s) #s
  10. #define xstr(s) str(s)
  11.  
  12. /* Handy token-pasting macors */
  13. #define glue(a,b) a##b
  14. #define xglue(a,b) glue(a,b)
  15.  
  16. /* Some definitions */
  17. #define ID(x) "This is version " ## xstr(x)
  18. #define INCFILE(x) xstr(glue(version,x)) ".h"
  19. #define VERSION 2
  20. #define ION ATILE
  21.  
  22. /* Expand some macros */
  23. str(VERSION)
  24. xstr(VERSION)
  25. glue(VERSION,3)
  26. xglue(VERSION,3)
  27. glue(VERS,ION)
  28. xglue(VERS,ION)
  29.  
  30. /* Expand some more */
  31. ID(VERSION)
  32. INCFILE(VERSION)
  33. str(INCFILE(VERSION))
  34. xstr(INCFILE(VERSION))
  35.  
  36.